package lk.icta.core.dao;

import lk.icta.core.entity.URMGOIUser;
import lk.icta.user.entity.User;

import java.util.List;

/**
 * @author Tharanga Punchihewa
 */
public interface URMGOIUserDAO {

    /**
     * Adding UR-MGOI User
     *
     * @param user       The user requesting add  user
     * @param urmgoiUser The OR-MGOI User to be added
     */
    public void addORMGOIUser(URMGOIUser urmgoiUser, User user);

    /**
     * Adding UR-MGOI User
     *
     * @param urmgoiUser The OR-MGOI User to be update
     * @param user       The user requesting to  update User
     */
    public void updateORMGOIUser(URMGOIUser urmgoiUser, User user);

    /**
     * find UR-MGOI User
     *
     * @param id id of the ormoi user
     * @return ur-mgoi user
     */
    public URMGOIUser getURMGOIByIdUKey(long id);

    /**
     * get UR-MGOI User list by organization id
     *
     * @param organizationId The OR-MGOI User to be update
     * @param user           The user requesting to  user list
     * @return URMGOI user list for given organization
     */
    public List<URMGOIUser> getURMGOIUserListByOrganization(int organizationId, User user);

    /**
     * find UR-MGOI User
     *
     * @param userName id of the ormoi user
     * @return ur-mgoi user
     */
    public URMGOIUser getURMGOIByUserName(String userName);


}
